#ifndef RATIONNEL_H
#define RATIONNEL_H

#include "Constante.h"
#include "Entier.h"
#include "NonComplexe.h"
#include "DataException.h"

class Rationnel : public NonComplexe{
    int den;
	int num;
public:
    Rationnel(int,int)throw(DataException);
    Rationnel(const Entier& = Entier(0),const Entier& = Entier(1))throw(DataException);

    Constante* operator+(const Constante&)const;
    Constante* operator*(const Constante&)const;
    Constante* operator/(const Constante&)const;
    Constante* operator-(const Constante&)const;
    Constante* operator-()const;

    std::string print()const {
        std::stringstream ss;
        ss <<num<<" / "<< den;
        return ss.str();
    }

    int getDen()const {return den;}
    int getNum()const {return num;}
};

#endif // RATIONNEL_H
